home *** CD-ROM | disk | FTP | other *** search
/ The Best of MacTutor - S…e Code for Volumes 1 to 5 / The Best of MacTutor - Source Code for Volume 1-5 (Wayzata Technology)(6031)(1990).bin / Source Code / #21 (Jun 87) / forth source / general defs next >
Text File  |  1987-04-05  |  3KB  |  132 lines

  1. ( general definitions )
  2.  
  3. HEX
  4. 44525652 CONSTANT "drvr
  5. 50524F43 CONSTANT "proc
  6. 434E544C CONSTANT "cntl
  7.  
  8. ( *** System globals *** )
  9. HEX
  10. 8FC CONSTANT JioDone 
  11.  
  12. DECIMAL
  13. ( windowrecord fields, starting with grafport )
  14. 16 CONSTANT    portRect    ( Grafport rectangle )
  15.  
  16. ( fields of WindowPeek )
  17. 108 CONSTANT windowKind 
  18. 110 CONSTANT wVisible
  19. 111 CONSTANT wHiLited    
  20. 112 CONSTANT goAwayFlag
  21. 113 CONSTANT spareFlag
  22. 130 CONSTANT dataHandle
  23. 140 CONSTANT controlList
  24. 152 CONSTANT refCon
  25.  
  26. ( fields of device control entry )
  27.  4 CONSTANT dCtlFlags
  28.  6 CONSTANT dCtlQHdr
  29. 16 CONSTANT dCtlPosition
  30. 20 CONSTANT dCtlStorage
  31. 24 CONSTANT dCtlRefNum
  32. 26 CONSTANT dCtlCurTicks
  33. 30 CONSTANT dCtlWindow
  34. 34 CONSTANT dCtlDelay
  35. 36 CONSTANT dCtlEMask
  36. 38 CONSTANT dCtlMenu
  37.  
  38. ( csCodes for Ctl calls )
  39. -1 CONSTANT goodBye
  40. 64 CONSTANT accEvent
  41. 65 CONSTANT accRun
  42. 66 CONSTANT accCursor
  43. 67 CONSTANT accMenu
  44. 68 CONSTANT accUndo
  45. 70 CONSTANT accCut
  46. 71 CONSTANT accCopy
  47. 72 CONSTANT accPaste
  48. 73 CONSTANT accClear
  49.  
  50. ( *** standard parameter block data structure *** )
  51. 0   CONSTANT  qLink        ( pointer to next queue entry [long word] )
  52. 4   CONSTANT  qType        ( queue type [word] )
  53. 6   CONSTANT  ioTrap        ( routine trap [word] )
  54. 8   CONSTANT  ioCmdAddr        ( routine address [long word] )
  55. 12  CONSTANT  ioCompletion    ( addr of completion routine [long word] )
  56. 16  CONSTANT  ioResult        ( result code returned here [word] )
  57. 18  CONSTANT  ioNamePtr        ( pointer to file name string [long word] )
  58. 22  CONSTANT  ioVRefNum        ( volume reference number )
  59. 24  CONSTANT  ioRefNum
  60. 26  CONSTANT  csCode        ( type of control call )
  61. 28  CONSTANT  csParam        ( control call parameters )
  62.  
  63. ( *** eventrecord data structure *** )
  64. 0  CONSTANT what
  65. 2  CONSTANT message
  66. 6  CONSTANT when
  67. 10 CONSTANT where
  68. 14 CONSTANT modifiers
  69.  
  70. ( *** event codes *** )
  71. 0  CONSTANT null-evt
  72. 1  CONSTANT mousedn-evt
  73. 2  CONSTANT mouseup-evt
  74. 3  CONSTANT keydn-evt
  75. 4  CONSTANT keyup-evt
  76. 5  CONSTANT autokey-evt
  77. 6  CONSTANT update-evt
  78. 7  CONSTANT disk-evt
  79. 8  CONSTANT activate-evt
  80. 10 CONSTANT network-evt
  81. 11 CONSTANT driver-evt
  82.  
  83. 0 CONSTANT inDesk
  84. 1 CONSTANT inMenuBar
  85. 2 CONSTANT inSysWindow
  86. 3 CONSTANT inContent
  87. 4 CONSTANT inDrag
  88. 5 CONSTANT inGrow
  89. 6 CONSTANT inGoAway
  90. 7 CONSTANT inZoomIn
  91. 8 CONSTANT inZoomOut
  92.  
  93. CODE shl ( data #bits )
  94.     MOVE.L (A6)+,D0
  95.     MOVE.L (A6),D1
  96.     LSL.L  D0,D1
  97.     MOVE.L D1,(A6)
  98.     RTS
  99. END-CODE    MACH
  100.  
  101. CODE shr ( data #bits )
  102.     MOVE.L (A6)+,D0
  103.     MOVE.L (A6),D1
  104.     LSR.L  D0,D1
  105.     MOVE.L D1,(A6)
  106.     RTS
  107. END-CODE    MACH
  108.  
  109. CODE on
  110.     MOVEQ.L    #1,D0
  111.     MOVE.L    (A6)+,A0
  112.     MOVE.L    D0,(A0)
  113.     RTS
  114. END-CODE MACH
  115.  
  116. CODE off
  117.     MOVE.L    (A6)+,A0
  118.     CLR.L    (A0)
  119.     RTS
  120. END-CODE MACH
  121.  
  122. CODE unpack
  123.     MOVE.L (A6),D0
  124.     CLR.L     D1
  125.     MOVE.W D0,D1
  126.     CLR.W  D0
  127.     SWAP.W D0
  128.     MOVE.L D0,(A6)
  129.     MOVE.L D1,-(A6)
  130.     RTS
  131. END-CODE MACH
  132.